package main

import "fmt"

/*
赋值内存:
数组是值类型，在栈中开辟内存
数组每个空间占用的字节数取决于数组类型
数组优点:
访问/查询/读取 速度快

*/
func main() {
	//声明数组：
	var arr [3]int16
	//获取数组的长度：
	fmt.Println(len(arr))
	//打印数组：
	fmt.Println(arr) //[0 0 0]
	arr[0] = 10
	arr[1] = 20
	arr[2] = 30
	fmt.Println(arr)

	//通过 %p 取对象地址值进行16进制打印
	//arr[]的内存地址和arr[0]的内存地址相同
	//证明arr中存储的是地址值：
	fmt.Printf("arr[ ]的地址为：%p", &arr)
	fmt.Println()

	// 十六进制
	// 0 1 2 3 4 5 6 7 8 9 A B C D E F
	/*
		a-8=2
		c-a=2
		数组每个空间占用的字节数取决于数组类型(int16 2字节)
		arr[0]的地址为：0xc0000ac058
		arr[1]的地址为：0xc0000ac05a
		arr[2]的地址为：0xc0000ac05c
	*/
	//第一个空间的地址：
	fmt.Printf("arr[0]的地址为：%p", &arr[0])
	fmt.Println()
	//第二个空间的地址：
	fmt.Printf("arr[1]的地址为：%p", &arr[1])
	fmt.Println()
	//第三个空间的地址：
	fmt.Printf("arr[2]的地址为：%p", &arr[2])
	fmt.Println()
}
